完成後的BasicCoin.move會長的像底下的圖:
Move 模組沒有自己的儲存空間。相反,Move「全域儲存」(我們稱之為區塊鏈狀態)是按位址索引的。每個位址下都有 Move 模組(程式碼)和 Move 資源(值)。
全域儲存在 Rust 語法中大致如下所示:
struct GlobalStorage {
resources: Map<address, Map<ResourceType, ResourceValue>>
modules: Map<address, Map<ModuleName, ModuleBytecode>>
}
每個位址下的Move資源儲存是一個從類型到值的對應。(細心的讀者可能會發現,這意味著每個地址每種類型只能有一個值。)這方便地為我們提供了一種按地址索引的本機映射。在我們的BasicCoin模組中,我們定義了以下Balance資源,表示每個地址持有的硬幣數量:
/// Struct representing the balance of each address.
struct Balance has key {
coin: Coin // same Coin from Step 1
}
這裡比較一下Move BlockChain 與 Solidity BlockChain的差別
大致而言,Move 區塊鏈狀態應如下:
以太坊區塊鏈狀態可能如下圖所示: